#include<iostream>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<string>
#include<signal.h>
#include<cstdlib>
#include<functinal>

using namespace std;

uint64_t count=0;
void catchSig(int signum)
{
    cout<<"final count: "<<count<<endl;
}

static void Usage(string proc)
{
    cout<<"Usage:\r\n\t"<<proc<<" signumber processid"<<endl;
}

int main(int argc,char *argv[])
{
    //计算1s内count的数量//cpu效率
    //cout+网络发送=IO
    alarm(1);//设置1s的闹钟
    signal(SIGALRM,catchSig);

    
    while(true) count++;

    // if(argc!=3)
    // {
    //     Usage(argv[0]);
    //     exit(1);
    // }
    // int signumber = atoi(argv[1]);
    // int procid = atoi(argv[2]);

    // kill(procid,signumber);

    // return 0;
}

// void catchSig(int signum)
// {
//     cout<<"进程捕捉到了一个信号，正在处理中"<<signum<<"pid: "<<getpid()<<endl;
// }

// int main()
// {
//     //signal(2,fun)  //编号+sig
//     signal(SIGINT,catchSig);  //名字+sig
//     //signal信号只是修改进程对特定的信号的后续处理动作，不是直接调用对应的处理动作
//     //如果后续没有任何signal信号产生，catchsig不会被调用
//     signal(3,catchSig);

//     while(true)
//     {
//         cout<<"我是一个进程，我正在运行,pid: "<<getpid()<<endl;
//         sleep(1);
//     }


//     return 0;
// }